@JsonAlias এর মাধ্যমে multiple names mapped করা

@JsonAlias Annotation - জ্যাকসন অ্যানোটেশন (Jackson Annotations) - Java Technologies

281

@JsonAlias Jackson-এর একটি অ্যানোটেশন, যা একটি ফিল্ডের জন্য একাধিক JSON ফিল্ড নাম ম্যানেজ করতে ব্যবহৃত হয়। এটি JSON-এ যদি একাধিক নাম থেকে একটি Java ফিল্ড মাপ করতে চান, তখন এই অ্যানোটেশন ব্যবহার করা হয়। এটি মূলত Deserialization-এ কার্যকরী, যেখানে একাধিক নাম থেকে একটি ফিল্ড মান পাওয়া যায়।


@JsonAlias এর বৈশিষ্ট্য

  • Multiple Aliases: একটি ফিল্ডের জন্য একাধিক নাম সমর্থন করতে সক্ষম।
  • Deserialization: JSON থেকে Java Object তৈরি করার সময় এটি কাজ করে, অর্থাৎ একাধিক JSON ফিল্ড নাম একটি Java ফিল্ডে মান ম্যাপ করতে ব্যবহার হয়।
  • Backward Compatibility: বিভিন্ন সময় বা সংস্করণে পরিবর্তিত ফিল্ড নাম সাপোর্ট করতে এটি সাহায্য করে।

@JsonAlias ব্যবহার করার উদাহরণ

1. Multiple JSON Field Names for the Same Java Field

যখন একটি Java ফিল্ডের জন্য বিভিন্ন JSON ফিল্ড নাম থাকে, তখন @JsonAlias ব্যবহার করা হয়।

Java Class Example:

import com.fasterxml.jackson.annotation.JsonAlias;

public class User {
    @JsonAlias({"user_id", "id", "userID"})
    private int id;

    private String name;

    // Getters and Setters
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Deserialization Example:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonAliasExample {
    public static void main(String[] args) throws Exception {
        String json = "{\"user_id\":1, \"name\":\"Rahim\"}";

        ObjectMapper mapper = new ObjectMapper();
        User user = mapper.readValue(json, User.class);

        System.out.println("User ID: " + user.getId());
        System.out.println("User Name: " + user.getName());
    }
}

JSON Input Example:

{
  "user_id": 1,
  "name": "Rahim"
}

Output:

User ID: 1
User Name: Rahim

এখানে, @JsonAlias({"user_id", "id", "userID"}) ব্যবহার করা হয়েছে, যার ফলে user_id, id, এবং userID JSON ফিল্ড নামগুলো Java id ফিল্ডের সাথে ম্যাপ হবে। আপনি যেকোনো এক নাম ব্যবহার করে JSON ডেটা পাঠাতে পারেন এবং সেটি সঠিকভাবে Java ফিল্ডে মাপ হবে।


@JsonAlias এর উপকারিতা

  1. Multiple Field Names Support:
    • একাধিক নামের জন্য একটি ফিল্ড ম্যাপ করা যায়, যেমন যদি API-তে কয়েকটি ভিন্ন সংস্করণে একাধিক নাম ব্যবহৃত হয়ে থাকে।
  2. Backward Compatibility:
    • যখন API সংস্করণের মধ্যে JSON ফিল্ড নাম পরিবর্তন হয়, তখন আগের নামের সাথে নতুন নাম ম্যাপ করার জন্য @JsonAlias ব্যবহার করা যায়।
  3. Ease of Integration:
    • বিভিন্ন JSON নাম থেকে একটি ফিল্ডের মান সংগ্রহ করে, কোডে অতিরিক্ত পরিবর্তন ছাড়াই বিভিন্ন ফরম্যাটের JSON-এর সাথে কাজ করা যায়।

@JsonAlias ব্যবহারের অন্যান্য উদাহরণ

2. Multiple Aliases for a Field

import com.fasterxml.jackson.annotation.JsonAlias;

public class Employee {
    @JsonAlias({"emp_id", "employee_id"})
    private int id;

    private String name;

    // Getters and Setters
}

Deserialization Example:

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonAliasExample {
    public static void main(String[] args) throws Exception {
        String json = "{\"emp_id\": 101, \"name\":\"John Doe\"}";

        ObjectMapper mapper = new ObjectMapper();
        Employee employee = mapper.readValue(json, Employee.class);

        System.out.println("Employee ID: " + employee.getId());
        System.out.println("Employee Name: " + employee.getName());
    }
}

JSON Input Example:

{
  "emp_id": 101,
  "name": "John Doe"
}

Output:

Employee ID: 101
Employee Name: John Doe

@JsonAlias এবং @JsonProperty এর মধ্যে পার্থক্য

বৈশিষ্ট্য@JsonAlias@JsonProperty
প্রয়োগের উদ্দেশ্যএকাধিক JSON ফিল্ড নাম একটি Java ফিল্ডে মাপ করার জন্যJSON ফিল্ডের নাম নির্ধারণ এবং প্রয়োজনীয়তা নিশ্চিত করার জন্য
বিভিন্ন নাম সাপোর্টএকাধিক নামের জন্য সমর্থনএকক নাম নির্ধারণ করে।
Serialization@JsonAlias শুধুমাত্র Deserialization-এর জন্য ব্যবহৃত@JsonProperty Serialization এবং Deserialization উভয়ের জন্য ব্যবহৃত
Backward Compatibilityএকাধিক সংস্করণের JSON ফিল্ড নাম সাপোর্ট করতে সাহায্য করেফিল্ড নাম কাস্টমাইজ করতে সাহায্য করে।

  1. @JsonAlias হল একটি শক্তিশালী টুল যা JSON ফিল্ডের একাধিক নামকে এক Java ফিল্ডের সাথে ম্যাপ করতে সহায়তা করে।
  2. এটি Backward Compatibility এবং Multiple Field Name Support নিশ্চিত করতে ব্যবহৃত হয়।
  3. JSON API Evolution-এর ক্ষেত্রে, যখন ফিল্ড নাম পরিবর্তিত হয়, তখন @JsonAlias ব্যবহার করে আপনি আগের নামের সাথে নতুন নাম ম্যাপ করতে পারেন, যার ফলে কোডে কম পরিবর্তন করতে হয়।

@JsonAlias Jackson এর JSON Deserialization এর জন্য একটি খুবই কার্যকরী অ্যানোটেশন, যা একাধিক JSON ফিল্ড নাম একটি Java ফিল্ডের সাথে মাপ করার জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...